# 变量按照访问的范围分为全局变量和局部变量
num = 98  # 全局变量


def test():
    num = 43  # 局部变量
    print(num)


# test()   # 43
# print(num)   # 98

'''
# 需求:在函数的内部,对函数外部的变量的值进行修改.  使用关键字global实现
nn = 12
def demo():
    # 通过global关键字将函数内部声明的变量变为了全局变量
    global nn
    nn = 76
    print(nn)
demo()    # 76
print(nn)  # 76
'''
# nonlocal主要用于闭包函数中
a = 17


def outer():
    a = 89

    def inner():
        nonlocal a
        a += 1
        print("inner:", a)

    return inner


# 闭包会保存住当前的运行环境
test = outer()
test()  # 90
test()  # 91
test()  # 92

num = 10


def demo():
    print(num)


demo()  # 10
demo()  # 10
demo()  # 10
